using UnityEngine;
using System.Collections;

public class TurretControl : MonoBehaviour {
	
	// Use this for initialization
	void Start () {
	}
	
	// Update is called once per frame
	void Update () {
		// Generate a plane that intersects the transform's position with an upwards normal.
		//Plane playerPlane = new Plane(Vector3.up, transform.position);
		 
		// Generate a ray from the cursor position
		Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);

		// Determine the point where the cursor ray intersects the plane.
		// This will be the point that the object must look towards to be looking at the mouse.
		// Raycasting to a Plane object only gives us a distance, so we'll have to take the distance,
		// then find the point along that ray that meets that distance. This will be the point
		// to look at.
		//float hitdist = 0.0f;
		
		RaycastHit hit;
		// If the ray is parallel to the plane, Raycast will return false.
		if (Physics.Raycast (ray, out hit, Mathf.Infinity)) {
			// Get the point along the ray that hits the calculated distance.
			Vector3 targetPoint = hit.point;
			 
			// Determine the target rotation. This is the rotation if the transform looks at the target point.
			Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
			// Smoothly rotate towards the target point.
			//transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime); // WITH SPEED
			transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, 1); // WITHOUT SPEED!!!
			transform.Rotate(0, 90, 0);
			Debug.DrawRay(transform.position, targetPoint - transform.position, Color.red);
		}
		/*else{
			
			playerPlane.Raycast (ray, out hitdist);
			
			Vector3 targetPoint = ray.GetPoint(hitdist);
 
        	// Determine the target rotation.  This is the rotation if the transform looks at the target point.
        	Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
 
        	// Smoothly rotate towards the target point.
        	transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, 1);
		}*/
    }
}
